# 使用外部反馈（Using external feedback）

在构建AI智能体工作流时，单纯的“自我反思”存在性能瓶颈。真正的突破在于引入外部反馈（External Feedback）。这不仅能打破性能天花板，还能让系统获得全新的、更强大的信息源，从而实现质的飞跃。


## 一、提示词工程的收益递减规律
- 横轴：投入在提示词工程上的时间。
- 纵轴：系统性能。
- 红色曲线（无反思）：
  - 初期，通过调整提示词，性能会快速提升。
  - 但很快，性能增长会放缓并趋于平缓，进入“平台期”。此时，即使再花费大量时间微调提示词，也很难获得显著的性能提升。
- 蓝色曲线（有反思）：
  - 在某个时间点加入反思机制后，性能曲线会再次上扬，达到一个比“无反思”更高的平台。
  - 这表明，反思能为系统带来一次“性能跃迁”，突破原有的瓶颈。
- 黄色曲线（有反思 + 外部反馈）：
  - 在引入反思的基础上，如果能接入外部反馈，性能将再次跃升，达到一个远超前两者的更高平台。
  - 外部反馈为系统注入了“新信息”，使其不再局限于模型自身的知识库和推理能力。

   ![alt text](../images/2.6.1.png)

## 二、外部反馈的案例

  ![alt text](../images/2.6.2.png)

1、避免提及竞争对手：模型有时会在文案中不必要地提及竞争对手的名字（如 “Our company’s shoes are better than RivalCo”）。
- 外部反馈工具：编写一个代码工具，使用正则表达式对模型的输出进行模式匹配，自动检测是否包含竞争对手名称。
- 反思流程：
  1. 模型生成初稿。
  2. 工具扫描文本，发现“RivalCo”。
  3. 将“检测到竞争对手名称”的反馈信息传回给模型。
  4. 模型基于此反馈，重新撰写一份不提及竞争对手的新版本。

2、事实核查：模型生成的历史内容可能存在不准确之处（如 “The Taj Mahal was built in 1648”）。
- 外部反馈工具：调用网络搜索API，查询关于泰姬陵建造时间的权威资料。
- 反思流程：
  1. 模型生成初稿。
  2. 工具发起网络搜索，返回结果：“泰姬陵于1631年下令建造，1648年完工”。
  3. 将搜索结果作为额外输入，提供给反思模型。
  4. 模型基于更精确的历史事实，重写文本，使其更准确。

3、遵守字数限制：模型生成的博客文章或摘要常常超出预设的字数上限。
- 外部反馈工具：开发一个简单的字数统计工具。
- 反思流程：
  1. 模型生成初稿。
  2. 工具统计字数，发现“超过字数限制”。
  3. 将“当前字数”和“字数限制”等信息作为反馈，传回给模型。
  4. 模型基于此反馈，压缩或精简内容，重新生成符合字数要求的版本。

  ![alt text](../images/2.6.3.png)

表格展示了三种常见的挑战及对应的工具化反馈来源：

| Challenge (挑战) | Example (示例) | Source of feedback (反馈来源) |
| :--- | :--- | :--- |
| **提及竞争对手** | “我们公司的鞋子比 RivalCo 好” | **模式匹配** (Pattern matching for competitor names)<br> *使用正则表达式等工具扫描输出，若发现竞争对手名字，则将其作为批评性输入反馈给模型，要求其重写文本。* |
| **事实核查文章** | “泰姬陵建于1648年” | **网络搜索结果** (Web search results)<br> *通过网络搜索核实历史事实（如泰姬陵实际于1631年下令建造，1648年完工），并将精确的时间段作为额外输入提供给反思智能体，以生成更准确的版本。* |
| **超出字数限制** | 生成的文章超过指定字数 | **字数统计工具** (Word count tool)<br> *编写代码精确统计字数，如果超出限制，则将该信息反馈给 LLM，要求其重新尝试，以更准确地达到期望的输出长度。* |


**总结：外部反馈的核心价值**
- 打破信息孤岛：外部反馈让模型能够接触到其训练数据之外的新鲜、实时、客观的信息。
- 解决模型固有缺陷：对于模型不擅长的任务（如精确计数、事实核查），外部工具可以完美弥补。
- 实现闭环优化：形成“生成 -> 执行/检查 -> 获取反馈 -> 反思改进”的自动化闭环，大幅提升工作效率和输出质量。
- 学习系统化地让模型调用外部工具，是构建强大智能体应用的关键。
